flask解析http GET,POST请求数据 | 您所在的位置:网站首页 › python 接收post参数 › flask解析http GET,POST请求数据 |
flask解析http请求数据
解析get请求参数
本文介绍flask如何解析http的get请求的参数, 解析post请求提交的表单和json数据, get请求用于查询数据,通常会带有参数,参数放在path的后面,中间用问号连接,多个请求参数以key=value的形式用&连接起来,下面是一个带参数的get请求的示例url http://127.0.0.1:5000/users?name=poly&age=14关于一个url的结构,请参考文章todo get请求的参数可以通过request.args来获得,也可以通过request.values来获得 request.args 是包含解析过的get参数的MultiDict,MultiDict 是werkzeug提供的一种多key字典,具体可参考 https://werkzeug.palletsprojects.com/en/0.16.x/datastructures/#werkzeug.datastructures.MultiDict ,本文不做过多介绍 下面是使用方法示例 @app.route('/users', methods=['GET', 'POST']) def users(): name = request.args['name'] age = request.args['age'] print(name, age) return 'ok'需要注意的是,获取到的参数一律都是字符串类型,使用时需要你自己做类型转换 获得post请求表单数据post请求用于新增数据,它提交数据的格式有两种,一种是form表单,一种是json数据,requests.form里存储着post请求提交的form表单数据,下面是解析示例 @app.route('/users', methods=['POST']) def users(): name = request.form['name'] age = request.form['age'] print(name, age) return 'ok' 使用request.values不论是request.args, 还是request.form,其类型都是MultiDict,因此,flask又提供了一个request.values,类型为CombinedMultiDict,它包含了args和form,这样,在获取数据时,就不必在纠结到底用args还是用form了,request.values使用方法与args,form相同,不再举例子 获得json数据客户端的post请求,put请求,有可能提交的是json数据,而非form表单数据,关于form表单和json数据,可以参考这篇文章中关于post请求的讲解todo post提交的json数据,不能通过args,form.values来获取,而是要用get_json()方法来获取 服务端示例代码 @app.route('/users', methods=['POST']) def users(): data = request.get_json() print(data) return 'ok'客户端示例代码 import requests res = requests.post('http://127.0.0.1:5000/users', json={'name': 'poly', 'age': 13}) |
CopyRight 2018-2019 实验室设备网 版权所有 |